﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using DAL;
using System.Text.RegularExpressions;

namespace GUI2.Guest.UC
{
    public partial class UcDangKy : UserControl
    {
        public UcDangKy()
        {
            InitializeComponent();
        }

        TruyXuatDB DB = new TruyXuatDB();

        bool checkTenDangNhap = false;
        private void txtTendangnhap_TextChanged(object sender, EventArgs e)
        {
            if (txtTendangnhap.Text.Trim().Length>=6)
            {
                int Thamso = 1;
                string[] Bien = new string[Thamso];
                object[] Giatri = new object[Thamso];
                Bien[0] = "@khma";
                Giatri[0] = txtTendangnhap.Text.Trim();
                DataTable dt = DB.LayDuLieu("select khma from khachhang where khma = @khma", Bien, Giatri, Thamso);
                if (dt.Rows.Count>0)
                {
                    lblTendangnhap.Text = "Tên đăng nhập này đã được sữ dụng, hãy chọn tên đăng nhập khác";
                    lblTendangnhap.ForeColor = Color.Red;
                    checkTenDangNhap = false;
                }
                else
                {
                    lblTendangnhap.Text = "Có thể sử dụng tên đăng nhập này";
                    lblTendangnhap.ForeColor = Color.Green;
                    checkTenDangNhap = true;
                }
            }
        }

        private void txtTendangnhap_Validated(object sender, EventArgs e)
        {
            if (txtTendangnhap.Text.Trim().Length < 6)
            {
                lblTendangnhap.ForeColor = Color.Red;
                lblTendangnhap.Text = "Tên đăng nhập nên từ 6 ký tự trở lên";
                checkTenDangNhap = false;
            }
        }

        bool checkMK = false;
        private void txtNhaplaiMK_Validated(object sender, EventArgs e)
        {
            if (txtMatkhau.Text.Trim()=="")
            {
                lblCheckMK.Text = "Chọn mật khẩu rồi mới xác nhận";
                //lblCheckMK.Visible = true;
                lblCheckMK.ForeColor = Color.Red;
                checkMK = false;
            }
            else
            {
                if (string.Compare(txtMatkhau.Text,txtNhaplaiMK.Text)!=0)
                {
                    lblCheckMK.Text = "Chưa khớp";
                    //lblCheckMK.Visible = true;
                    lblCheckMK.ForeColor = Color.Red;
                    ptcCheckMK.Visible = false;
                    checkMK = false;
                }
                else
                {
                    //lblCheckMK.Visible = false;
                    lblCheckMK.Text = "";
                    ptcCheckMK.Visible = true;
                    checkMK = true;
                }
            }
        }

        private void txtNhaplaiMK_Click(object sender, EventArgs e)
        {
            if (!checkMK)
            {
                //lblCheckMK.Visible = false;
                lblCheckMK.Text = "";
                ptcCheckMK.Visible = false;
                txtNhaplaiMK.Clear();
            }
        }

        private void txtMatkhau_Validated(object sender, EventArgs e)
        {
            if (txtNhaplaiMK.Text != "")
            {
                if (string.Compare(txtMatkhau.Text, txtNhaplaiMK.Text) != 0)
                {
                    lblCheckMK.Text = "Chưa khớp";
                    //lblCheckMK.Visible = true;
                    lblCheckMK.ForeColor = Color.Red;
                    ptcCheckMK.Visible = false;
                    checkMK = false;
                }
                else
                {
                    //lblCheckMK.Visible = false;
                    lblCheckMK.Text = "";
                    ptcCheckMK.Visible = true;
                    checkMK = true;
                }
            }
        }

        private void txtMatkhau_Click(object sender, EventArgs e)
        {
            if (!checkMK)
            {
                //lblCheckMK.Visible = false;
                lblCheckMK.Text = "";
                ptcCheckMK.Visible = false;
                txtMatkhau.Clear();
            }
        }

        bool _CheckTen = false;
        private void txtHoten_Validated(object sender, EventArgs e)
        {
            if (txtHoten.Text.Trim() != "")
            {
                if (KiemTraKieuDuLieu.CoPhaiLaTen_(txtHoten.Text.Trim()))
                {
                    txtHoten.Text = SuLyDuLieu.DinhDangTenRieng(txtHoten.Text);
                    lblHoten.Text = "";
                    _CheckTen = true;
                }
                else
                {
                    lblHoten.Text = "Tên không nên có số hay ký tự đặt biệt";
                    _CheckTen = false;
                }
            }
            else
            {
                lblHoten.Text = "Bạn chưa nhập tên";
                _CheckTen = false;
            }
        }

        private void txtHoten_Click(object sender, EventArgs e)
        {
            //lblHoten.Visible = false;
            lblHoten.Text = "";
        }

        bool _CheckDT = false;
        private void txtDienthoai_Validated(object sender, EventArgs e)
        {
            //kiểm tran rỗng
            if (txtDienthoai.Text.Trim() != "")
            {
                //Kiểm tra có pải là số
                if (KiemTraKieuDuLieu.CoPhaiLaSo_(txtDienthoai.Text.Trim()))
                {
                    //Kiểm tra bắt đầu và độ dài
                    if ((txtDienthoai.Text.Trim()[0] == '0' && txtDienthoai.Text.Trim()[1] == '9' && txtDienthoai.Text.Trim().Length == 10) || (txtDienthoai.Text.Trim()[0] == '0' && txtDienthoai.Text.Trim()[1] == '1' && txtDienthoai.Text.Trim().Length == 11))
                    {
                        txtDienthoai.Text = txtDienthoai.Text.Trim();
                        //lblLoiSDT.Visible = false;
                        lblLoiSDT.Text = "";
                        _CheckDT = true;
                    }
                    else //Kiểm tra bắt đầu và độ dài
                    {
                        //lblLoiSDT.Visible = true;
                        lblLoiSDT.Text = "Số điện thoại bắt đầu 09 hay 01 và từ 10 đến 11 số";
                        lblLoiSDT.ForeColor = Color.Red;
                        _CheckDT = false;
                    }
                }
                else //Kiểm tra có pải là số
                {
                    //lblLoiSDT.Visible = true;
                    lblLoiSDT.Text = "Số điện thoại nên nhập số";
                    lblLoiSDT.ForeColor = Color.Red;
                    _CheckDT = false;
                }
            }
            else //kiểm tra rỗng
            {
                _CheckDT = false;
                //lblLoiSDT.Visible = true;
            }
        }

        private void txtDienthoai_Click(object sender, EventArgs e)
        {
            lblLoiSDT.Visible = false;
        }

        bool checkmail = false;
        private void txtMail_Validated(object sender, EventArgs e)
        {
            string match = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*";
            Regex reg = new Regex(match);
            if (reg.IsMatch(this.txtMail.Text))
            {
                checkmail = true;
                lblMail.Text = "";
            }
            else
            {
                lblMail.Text = "Mail không hợp lệ";
                lblMail.ForeColor = Color.Red;
                checkmail = false;
            }
        }

        private void txtMail_Click(object sender, EventArgs e)
        {
            //lblMail.Visible = false;
            lblMail.Text = "";
        }

        bool checkNgaySinh = false;
        private void dtpNgaySinh_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                DateTime t = DateTime.Today;
                int birth = Convert.ToDateTime(string.Format("{0:MM/dd/yyyy}", dtpNgaySinh.EditValue)).Year;
                int today = Convert.ToDateTime(string.Format("{0:MM/dd/yyyy}", t)).Year;
                if (today-birth>=7 && today-birth<130)
                {
                    lblNgaySinh.Text = "";
                    checkNgaySinh = true;
                }
                else
                {
                    lblNgaySinh.Text = "Bạn phải lớn hơn 6 tuổi hoạc nhỏ hơn 130 tuổi";
                    checkNgaySinh = false;
                }
            }
            catch (Exception)
            {
            }
        }

        private void txtDiachi_Validated(object sender, EventArgs e)
        {
            txtDiachi.Text = BLL.SuLyDuLieu.DinhDangTenRieng(txtDiachi.Text);
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            txtTendangnhap.Clear();
            lblTendangnhap.Text = "";
            checkTenDangNhap = false;

            txtMatkhau.Clear();
            txtNhaplaiMK.Clear();
            lblCheckMK.Text = "";
            checkMK = false;
            ptcCheckMK.Visible = false;

            txtHoten.Clear();
            lblHoten.Text = "";
            _CheckTen = false;

            dtpNgaySinh.EditValue = null;
            checkNgaySinh = false;
            lblNgaySinh.Text = "";

            cbxPhai.Text = "";

            txtDiachi.Clear();

            txtDienthoai.Clear();
            lblLoiSDT.Text = "";
            _CheckDT = false;

            txtMail.Clear();
            checkMK = false;
            lblMail.Text = "";

        }

        private void btnDangky_Click(object sender, EventArgs e)
        {
            if (checkTenDangNhap && checkMK && checkNgaySinh && _CheckDT && _CheckTen && checkmail)
            {

                int Thamso = 8;
                string[] Bien = new string[Thamso];
                object[] Giatri = new object[Thamso];
                Bien[0] = "@khma";
                Bien[1] = "@khpass";
                Bien[2] = "@khten";
                Bien[3] = "@khtuoi";
                Bien[4] = "@khphai";
                Bien[5] = "@khdiachi";
                Bien[6] = "@khdienthoai";
                Bien[7] = "@khmail";

                Giatri[0] = txtTendangnhap.Text;
                Giatri[1] = BLL.MaHoaDuLieu.MaHoaMD5_(txtNhaplaiMK.Text.Trim());
                Giatri[2] = txtHoten.Text;
                Giatri[3] = dtpNgaySinh.EditValue;
                Giatri[4] = cbxPhai.Text;
                Giatri[5] = txtDiachi.Text;
                Giatri[6] = txtDienthoai.Text.Trim();
                Giatri[7] = txtMail.Text;
                DAL.TruyXuatDB DB = new TruyXuatDB();
                if (DB.Update("insert into khachhang (khma,khpass,khten,khtuoi,khphai,khdiachi,khdienthoai,khmail) values (@khma,@khpass,@khten,@khtuoi,@khphai,@khdiachi,@khdienthoai,@khmail)", Bien, Giatri, Thamso) > 0)
                {
                    ThongBao.FrmThongBaoOk.TaoThongBaoOk("Thông báo", "Chúc mừng bạn đã trở thành thành viên của XXX", 4);
    
                }
            }
            else
            {
                ThongBao.FrmThongBaoOk.TaoThongBaoOk("Thông báo", "Một số thông tin chưa hợp lệ",2);
            }
        }

        private void btnDangky_Click_1(object sender, EventArgs e)
        {

        }

        private void UcDangKy_Load(object sender, EventArgs e)
        {
            if (FrmMainGuest.TenDangNhap == "")
            {
                barCaNhan.Visible = false;
            }
            else barCaNhan.Visible = true;
        }


    }
}
